namespace NFit.Core.Interfaces
{
    /// <summary>
    /// Service contract for fixture execution
    /// </summary>
    public interface IFixtureExecution
    {
        /// <summary>
        /// Indicate if the current specification as an implementation
        /// </summary>
        bool IsATestFixture { get; }

        /// <summary>
        /// Run the fixture
        /// </summary>
        /// <param name="Context"></param>
        /// <param name="CurrentSpecification"></param>
        /// <param name="FixtureDef"></param>
        /// <returns></returns>
        bool Run(IExecutionContext Context, SpecificationDefinition CurrentSpecification, FixtureDefinition FixtureDef);
    }
}